# 列表：list是一种有序的集合，可以随时添加和删除其中的元素。
# 创建一个列表，只要把逗号分隔的不同的数据项使用方括号括起来即可。
list1=[]   #创建了一个空列表
print(list1)
# 创建了一个列表，并对列表中的元素进行初始赋值
list1=[3.14,8,"列表讲解",8]
print(list1)
print(type(list1))
# 列表中也有下标，下标的使用方式和字符串基本一致
print(list1[1])   #可以通过下标进行取值
list1[2]="python中列表的讲解"   #通过下标取出列表中对应的元素，并重新赋值
print(list1)

# 列表中支持切片操作，列表中是否越界，切片的使用方式与字符串中相同
# print(list1[5])   #取出超过最大下标的元素会报越界异常
print(list1[0:9])    #切片不会越界，使用方式与字符串基本一致

# 列表可以通过for循环进行遍历
for item in list1:
    print(item,end=" ")
    pass
print()
# ###########################列表中的常用方法讲解###########################################
# ###########################新增操作#######################

# append方法，在列表的末尾，追加元素
list1.append(9)
list1.append(5.66)
list1.append("大数据")
list1.append(["abc",8,False])
print(list1)

# insert方法，可以在指定位置进行元素的插入，第一个参数表示是想要插入元素的位置（下标），第二个参数表示要插入的元素
list1.insert(0,"青软实训")
print(list1)

# extend方法，可以实现批量增加，将另一个列表中的元素，批量增加到当前列表中
list2=["广博路325号",8,6.66]
list1.extend(list2)
print(list1)

# ###########################删除操作#######################
# pop()方法，默认删除列表中的最后一个元素
list1.pop()
print(list1)
# pop方法可以指定参数，参数可以为想要删除的元素的下标
list1.pop(2)
print(list1)

# remove（）方法,可以移除指定的元素，若列表中有多个重复的元素，进行删除时，会删除从左到右出现的第一个元素
list1.remove(5.66)
print(list1)
list1.remove(8)
print(list1)

# 使用del指令可以实现批量删除，用切片的方式，指定删除的范围
del list1[0:3]
print(list1)
#也可以直接指定变量进行删除，删除后，该变量不能继续使用
# del list1
print(list1)

# ###########################修改操作######################
# 使用下标获取列表中的元素重新赋值，就可以对原列表中的数据进行更改
list1[0]=8
print(list1)
print(list1[2])
list1[2][2]=3.14
print(list1)

# ###########################查询操作#######################
# count方法，统计某个元素在列表中出现的次数
print(list1.count(8))

# index方法，可以获取列表中指定元素的索引值；若列表中有重复值，查询时，会返回从左到右出现的第一个元素的索引
print(list1.index("大数据"))
print(list1.index(8))

# reverse方法，可以实现列表的反转
list1.reverse()
print(list1)

# sort方法，可以将列表进行排序，按照一定的规则进行排序，列表中的元素最好为同一类型时排序才有意义
# 方法中有一参数，可以指定排序为正序还是倒叙。reverse为True，则列表倒叙排列。reverse为False（或不写），列表为正序排列
list3=["java","mysql","oracle","python","html","css"]
print(list3)
list3.sort(reverse=True)
print(list3)

# len方法可以查看列表长度
print(len(list1))

# 列表中支持切片操作。与字符串中一致

